MONACTIVE=INACTIVE_THE_MONITO, SLVSEL=NOT_SELECTED_THE_SL, SLVPENDING=NO_SERVICE_NEEDED_T, MSTSTATE=IDLE_THE_MASTER_FUN, MONOV=NO_OVERRUN_MONITOR_, MONRDY=NO_DATA_THE_MONITOR, SLVNOTSTR=STRETCHING_THE_SLAV, MSTPENDING=NO_SERVICE_NEEDED_T, SLVIDX=SLAVE_ADDRESS_0_WAS_, SLVSTATE=RECEIVED_ADDRESS_PL, MSTARBLOSS=NO_LOSS_NO_ARBITRAT, SCLTIMEOUT=NO_TIME_OUT_SCL_LOW, MONIDLE=NOT_IDLE_THE_I2C_BU, EVENTTIMEOUT=NO_TIME_OUT_I2C_BUS, SLVDESEL=NOT_DESELECTED_THE_, MSTSTSTPERR=NO_STARTSTOP_ERROR_
Status register for Master, Slave, and Monitor functions.
MSTPENDING | Master Pending. Indicates whether the Master function needs software service. This flag will cause an interrupt when set if enabled via the INTENSET register. The MSTPENDING flag is automatically cleared when a 1 is written to the MSTCONTINUE bit in the MSTCTL register. 0 (NO_SERVICE_NEEDED_T): No service needed. The Master function does not currently need service. 1 (SERVICE_NEEDED_THE_): Service needed. The Master function needs service. Information on what is needed can be found in the adjacent MSTSTATE field. |
MSTSTATE | Master State code. Each value of this field indicates a specific required service for the Master function. All other values are reserved. 0 (IDLE_THE_MASTER_FUN): Idle. The Master function is available to be used for a new transaction. 1 (RECEIVE_READY_RECEI): Receive ready. Received data available (Master Receiver mode). Address plus Read was previously sent and Acknowledged by slave. 2 (TRANSMIT_READY_DATA): Transmit ready. Data can be transmitted (Master Transmitter mode). Address plus Write was previously sent and Acknowledged by slave. 3 (ADDRESS_SLAVE_NACKE): Address. Slave Nacked address. 4 (DATA_SLAVE_NACKED_T): Data. Slave Nacked transmitted data. |
MSTARBLOSS | Master Arbitration Loss flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MSTCONTINUE. 0 (NO_LOSS_NO_ARBITRAT): No loss. No Arbitration Loss has occurred. 1 (ARBITRATION_LOSS_TH): Arbitration loss. The Master function has experienced an Arbitration Loss. At this point, the Master function has already stopped driving the bus and gone to an idle state. Software can respond by doing nothing, or by sending a Start in order to attempt to gain control of the bus when it next becomes idle. |
RESERVED | Reserved. Read value is undefined, only zero should be written. |
MSTSTSTPERR | Master Start/Stop Error flag. This flag can be cleared by software writing a 1 to this bit. It is also cleared automatically a 1 is written to MstContinue. 0 (NO_STARTSTOP_ERROR_): No Start/Stop Error has occurred. 1 (STARTSTOP_ERROR_HAS): Start/stop error has occurred. The Master function has experienced a Start/Stop Error. A Start or Stop was detected at a time when it is not allowed by the I2C specification. The Master interface has stopped driving the bus and gone to an idle state, no action is required. A request for a Start could be made, or software could attempt to insure that the bus has not stalled. |
RESERVED | Reserved. Read value is undefined, only zero should be written. |
SLVPENDING | Slave Pending. Indicates whether the Slave function needs software service. This flag will cause an interrupt when set if enabled via INTENSET. The SLVPENDING flag is read-only and is automatically cleared when a 1 is written to the SLVCONTINUE bit in the MSTCTL register. 0 (NO_SERVICE_NEEDED_T): No service needed. The Slave function does not currently need service. 1 (SERVICE_NEEDED_THE_): Service needed. The Slave function needs service. Information on what is needed can be found in the adjacent SLVSTATE field. |
SLVSTATE | Slave State code. Each value of this field indicates a specific required service for the Slave function. All other values are reserved. 0 (RECEIVED_ADDRESS_PL): Received. Address plus R/W received. At least one of the four slave addresses has been matched by hardware. 1 (DATA_AVAILABLE_RECE): Data available. Received data is available (Slave Receiver mode). 2 (DATA_READY_FOR_TRANS): Data ready for transmit. Data can be transmitted (Slave Transmitter mode). 3 (RESERVED_): Reserved. |
SLVNOTSTR | Slave Not Stretching. Indicates when the slave function is stretching the I2C clock. This is needed in order to gracefully invoke Deep Sleep or Power-down modes during slave operation. This read-only flag reflects the slave function status in real time. 0 (STRETCHING_THE_SLAV): Stretching. The slave function is currently stretching the I2C bus clock. Deep-Sleep or Power-down mode cannot be entered at this time. 1 (NOT_STRETCHING_THE_): Not stretching. The slave function is not currently stretching the I 2C bus clock. Deep-sleep or Power-down mode could be entered at this time. |
SLVIDX | Slave address match Index. This field is valid when the I2C slave function has been selected by receiving an address that matches one of the slave addresses defined by any enabled slave address registers, and provides an identification of the address that was matched. It is possible that more than one address could be matched, but only one match can be reported here. 0 (SLAVE_ADDRESS_0_WAS_): Slave address 0 was matched. 1 (SLAVE_ADDRESS_1_WAS_): Slave address 1 was matched. 2 (SLAVE_ADDRESS_2_WAS_): Slave address 2 was matched. 3 (SLAVE_ADDRESS_3_WAS_): Slave address 3 was matched. |
SLVSEL | Slave selected flag. SLVSEL is set after an address match when software tells the Slave function to acknowledge the address. It is cleared when another address cycle presents an address that does not match an enabled address on the Slave function, when slave software decides to Nack a matched address, or when there is a Stop detected on the bus. SLVSEL is not cleared if software Nacks data. 0 (NOT_SELECTED_THE_SL): Not selected. The Slave function is not currently selected. 1 (SELECTED_THE_SLAVE_): Selected. The Slave function is currently selected. |
SLVDESEL | Slave Deselected flag. This flag will cause an interrupt when set if enabled via INTENSET. This flag can be cleared by writing a 1 to this bit. 0 (NOT_DESELECTED_THE_): Not deselected. The Slave function has not become deselected. This does not mean that it is currently selected. That information can be found in the SLVSEL flag. 1 (DESELECTED_THE_SLAV): Deselected. The Slave function has become deselected. This is specifically caused by the SLVSEL flag changing from 1 to 0. See the description of SLVSEL for details on when that event occurs. |
MONRDY | Monitor Ready. This flag is cleared when the MONRXDAT register is read. 0 (NO_DATA_THE_MONITOR): No data. The Monitor function does not currently have data available. 1 (DATA_WAITING_THE_MO): Data waiting. The Monitor function has data waiting to be read. |
MONOV | Monitor Overflow flag. 0 (NO_OVERRUN_MONITOR_): No overrun. Monitor data has not overrun. 1 (OVERRUN_A_MONITOR_D): Overrun. A Monitor data overrun has occurred. This can only happen when Monitor clock stretching not enabled via the MONCLKSTR bit in the CFG register. Writing 1 to this bit clears the flag. |
MONACTIVE | Monitor Active flag. This flag indicates when the Monitor function considers the I2C bus to be active. Active is defined here as when some Master is on the bus: a bus Start has occurred more recently than a bus Stop. 0 (INACTIVE_THE_MONITO): Inactive. The Monitor function considers the I2C bus to be inactive. 1 (ACTIVE_THE_MONITOR_): Active. The Monitor function considers the I2C bus to be active. |
MONIDLE | Monitor Idle flag. This flag is set when the Monitor function sees the I2C bus change from active to inactive. This can be used by software to decide when to process data accumulated by the Monitor function. This flag will cause an interrupt when set if enabled via the INTENSET register . The flag can be cleared by writing a 1 to this bit. 0 (NOT_IDLE_THE_I2C_BU): Not idle. The I2C bus is not idle, or this flag has been cleared by software. 1 (IDLE_THE_I2C_BUS_HA): Idle. The I2C bus has gone idle at least once since the last time this flag was cleared by software. |
RESERVED | Reserved. Read value is undefined, only zero should be written. |
EVENTTIMEOUT | Event Time-out Interrupt flag. Indicates when the time between events has been longer than the time specified by the TIMEOUT register. Events include Start, Stop, and clock edges. The case of SCL remaining low longer than TIMEOUT is not reported by this flag, it is reported in by the SCL Time-out flag. The flag is cleared by writing a 1 to this bit. 0 (NO_TIME_OUT_I2C_BUS): No time-out. I2C bus events have not caused a timeout. 1 (EVENT_TIME_OUT_THE_): Event time-out. The time between I2C bus events has been longer than the time specified by the I2C Timeout register. |
SCLTIMEOUT | SCL Time-out Interrupt flag. Indicates when SCL has remained low longer than the time specific by the TIMEOUT register. The flag is cleared by writing a 1 to this bit. 0 (NO_TIME_OUT_SCL_LOW): No time-out. SCL low time has not caused a timeout. 1 (TIME_OUT_SCL_LOW_TI): Time-out. SCL low time has caused a timeout. |
RESERVED | Reserved. Read value is undefined, only zero should be written. |